/*
 * IAskToBuyModel.java
 * business
 *
 * Created by SunDing on 2016/10/13.
 *
 * Copyright (c) 2016年 yidiandao. All rights reserved.
 */

package com.yidiandao.business.data.model;

import com.yidiandao.business.data.bean.Goods;
import com.yidiandao.business.data.response.PostedWantToBuyResponse;
import com.yidiandao.business.ui.userabout.wanttobuy.post.PostWantToBuyContract;
import com.yidiandao.business.ui.widget.listview.DisplayListItem;

import java.io.File;
import java.util.List;

/**
 * 求购相关
 */
public interface IAskToBuyModel {

    /**
     * 我发布的求购
     */
    void getMySendAsk(String tag, boolean isRefresh, OnOfferListListener listener);

    /**
     * 我参与的求购
     */
    void getMyJoinedAsk(
            String pagerTag, int currentPage, OnGetAskDataListener onGetAskDataListener);

    /**
     * @return 用户是否填完整信息
     */
    boolean isFinishInfo(PostWantToBuyContract.View view);

    /**
     * 提交发布求购文字信息
     */
    void sendInfo(
            String tag,
            String provinceId,
            String cityId,
            String districtId,
            String mTimeMillis,
            OnLoadListener listener);

    void sendInfoNew(String tag, String picIds, String desc, String provinceId, String cityId, String areaId, String number, String unit, String wantId, OnLoadListener listener);

    /**
     * 提交发布求购图片信息
     */
    void sendPic(String tag, File file, OnAccessListener<String> listener);

    /**
     * 压缩图片并返回图片路径
     */
    File pressPic(String path);

    /**
     * 删除求购信息
     * @param tag
     * @param wandId  此条求购的id
     * @param listener
     */
    void deletePosted(String tag,String wandId,OnLoadListener listener);

    /**
     * 编辑数据  获取之前发布的信息
     */
    void getPostedData(String tag,String wandId,OnAccessListener<PostedWantToBuyResponse.DataBean> listener);

    /**
     * 接受报价
     */
    void acceptPrice(String tag,String id,OnLoadListener listener);


    /**
     * 上传订单凭证图片
     * @param tag
     * @param file
     * @param orderId
     * @param listener
     */
    void sendOrderCertificatePic(String tag, File file, String orderId, OnLoadListener listener);

    /**
     * 同意或拒绝报价
     */
    void handleRequest(String tag, String id, String isAccept, OnLoadListener listener);

    interface OnLoadListener {

        void onSuccess();

        void onFailed();

        void onFinal();
    }

    interface OnAccessListener<T> {

        void onSuccess(T t);

        void onFailed();

        void onFinal();
    }

    interface OnGetAskDataListener<T> {

        void onSuccess(T lists, int count);

        void onFailed();

        void onFinal();
    }

    interface OnOfferListListener {

        void onSuccess(List<DisplayListItem> listItems, boolean emptyData, boolean hasMoreData);

        void onFailed();
    }

    void getAskToBuyOfferList(boolean isRefreshing, List<Goods> similarGoodsList, String wantId, String tag, OnOfferListListener listener);
}
